

function generateUUID() {
    return (randomNumber() + randomNumber() + "-" + randomNumber() + "-" + randomNumber() +
        "-" + randomNumber() + "-" + randomNumber() + randomNumber() + randomNumber());
}

function randomNumber() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}

export const componentList = [
    {
        code: generateUUID(),
        labelName: "输入框",
        drawerTitle: "编辑输入框",
        icon: "RightSquareOutlined",
        drawer: "YwuFormInputDrawer",
        type: "input",
        inputPlaceHolder: "",
        isTextArea: false, // 是否启用文本域
        isAutoSize: false, // 是否自适应高度
        maxRow: 8, // 文本域最大行数
        minRow: 4, // 文本域最小行数
        isClearable: false, // 是否支持清空
        isPassword: false, // 是否加密框展示
        isPrefixIcon: false, // 是否添加前置图标
        isSuffixIcon: false, // 是否添加后置图标
        prefixIcon: "", // 前置图标
        suffixIcon: "", // 后置图标
        component: "YwuFormInput",
        sourceId: 1,
        name: "输入框"
    },
    {
        code: generateUUID(),
        labelName: "下拉框",
        drawerTitle: "编辑下拉框",
        drawer: "YwuFormSelectDrawer",
        type: "select",
        icon: "BorderHorizontalOutlined",
        component: "YwuFormSelect",
        sourceId: 2,
        name: "下拉框",
        valueType: "CUSTOM", // 参数获取类型，自定义、表单外部接口、三方服务、接口服务
        customValue: "[]", // 自定义的下拉框数组
        selectPlaceHolder: "", // 提示内容
        isClearable: false, // 是否支持清空
        isFilterable: false, // 是否支持搜索
        isMultiple: false, // 是否支持多选
        isCollapseTags: false, // 多选时是否折叠标签
        isCollapseTagsTooltip: false, // 多选且折叠标签时，是否支持鼠标悬浮展示所有标签
        maxCollapseTags: 1, // 多选且折叠标签时，展示折叠的最大标签数量
        optionLabel: "label", // 下拉选择Label字段
        optionValue: "value", // 下拉选择Value字段
        formInterfaceCode: "", // 表单外部接口编码
    },
    {
        code: generateUUID(),
        labelName: "树形选择器",
        drawerTitle: "编辑树形选择器",
        icon: "RightSquareOutlined",
        drawer: "YwuFormTreeSelectDrawer",
        type: "treeSelect",
        component: "YwuFormTreeSelect",
        sourceId: 3,
        name: "树形选择器",
        selectPlaceHolder: "", // 提示内容
        isClearable: false, // 是否支持清空
        isFilterable: false, // 是否支持搜索
        isMultiple: false, // 是否支持多选
        isCollapseTags: false, // 多选时是否折叠标签
        isCollapseTagsTooltip: false, // 多选且折叠标签时，是否支持鼠标悬浮展示所有标签
        maxCollapseTags: 1, // 多选且折叠标签时，展示折叠的最大标签数量
        valueType: "CUSTOM", // 参数获取类型，自定义、表单外部接口、三方服务、接口服务
        customValue: "[{\"value\": \"1\", \"label\": \"Level one 1\", \"children\": [{\"value\": \"1-1\", \"label\": \"Level two 1-1\", \"children\": [{\"value\": \"1-1-1\", \"label\": \"Level three 1-1-1\"}]}]}]", // 自定义的下拉框数组
        formInterfaceCode: "", // 表单外部接口编码
        optionLabel: "label", // 下拉选择Label字段
        optionValue: "value", // 下拉选择Value字段
        optionChildren: "children", // 下拉选择Children字段
    },
    {
        code: generateUUID(),
        labelName: "级联选择器",
        drawerTitle: "编辑级联选择器",
        icon: "RightSquareOutlined",
        drawer: "YwuFormCascaderSelectDrawer",
        type: "cascaderSelect",
        component: "YwuFormCascaderSelect",
        sourceId: 4,
        name: "级联选择器",
        selectPlaceHolder: "", // 提示内容
        isClearable: false, // 是否支持清空
        isFilterable: false, // 是否支持搜索
        isMultiple: false, // 是否支持多选
        isCollapseTags: false, // 多选时是否折叠标签
        isCollapseTagsTooltip: false, // 多选且折叠标签时，是否支持鼠标悬浮展示所有标签
        maxCollapseTags: 1, // 多选且折叠标签时，展示折叠的最大标签数量
        valueType: "CUSTOM", // 参数获取类型，自定义、表单外部接口、三方服务、接口服务
        customValue: "[{\"value\": \"1\", \"label\": \"Level one 1\", \"children\": [{\"value\": \"1-1\", \"label\": \"Level two 1-1\", \"children\": [{\"value\": \"1-1-1\", \"label\": \"Level three 1-1-1\"}]}]}]", // 自定义的下拉框数组
        formInterfaceCode: "", // 表单外部接口编码
        optionLabel: "label", // 下拉选择Label字段
        optionValue: "value", // 下拉选择Value字段
        optionChildren: "children", // 下拉选择Children字段
    },
    {
        code: generateUUID(),
        labelName: "单选框",
        drawerTitle: "编辑单选框",
        icon: "RightSquareOutlined",
        drawer: "YwuFormRadioDrawer",
        type: "radio",
        component: "YwuFormRadio",
        sourceId: 5,
        name: "单选框",
        valueType: "CUSTOM", // 参数获取类型，自定义、表单外部接口、三方服务、接口服务
        customValue: "[{\"value\": \"one\", \"label\": \"选项一\"},{\"value\": \"two\", \"label\": \"选项二\"}]", // 自定义的下拉框数组
        formInterfaceCode: "", // 表单外部接口编码
        optionLabel: "label", // 下拉选择Label字段
        optionValue: "value", // 下拉选择Value字段
    },
    {
        code: generateUUID(),
        labelName: "复选框",
        drawerTitle: "编辑复选框",
        icon: "RightSquareOutlined",
        drawer: "YwuFormCheckBoxDrawer",
        type: "checkBox",
        component: "YwuFormCheckBox",
        sourceId: 6,
        name: "复选框",
        valueType: "CUSTOM", // 参数获取类型，自定义、表单外部接口、三方服务、接口服务
        customValue: "[{\"value\": \"one\", \"label\": \"选项一\"},{\"value\": \"two\", \"label\": \"选项二\"}]", // 自定义的下拉框数组
        formInterfaceCode: "", // 表单外部接口编码
        optionLabel: "label", // 下拉选择Label字段
        optionValue: "value", // 下拉选择Value字段
        optionDisable: "disable", // 禁用字段
        isMaxNum: false, // 是否启用最大选择数
        maxNum: 1, // 最大选择数
        isMinNum: false, // 是否启用最小选择数
        minNum: 1, // 最小选择数
    },
    {
        code: generateUUID(),
        labelName: "数字输入框",
        drawerTitle: "编辑数字输入框",
        icon: "RightSquareOutlined",
        drawer: "YwuFormInputNumberDrawer",
        type: "inputNumber",
        component: "YwuFormInputNumber",
        sourceId: 7,
        name: "数字输入框",
        isMaxNum: false, // 启用最大输入数
        maxNum: 1, // 最大输入数
        isMinNum: false, // 启用最小输入数
        minNum: 10, // 最小输入数
    },
    {
        code: generateUUID(),
        labelName: "评分",
        drawerTitle: "编辑评分",
        icon: "RightSquareOutlined",
        drawer: "YwuFormRateDrawer",
        type: "rate",
        component: "YwuFormRate",
        sourceId: 8,
        name: "评分",
        isAllowHalf: false, // 是否允许半选
        isShowScore: false, // 是否展示分数
        scoreTemplate: "{value} 分", // 分数模板
        max: 10, // 最大分值
    },
    {
        code: generateUUID(),
        labelName: "Switch开关",
        drawerTitle: "编辑Switch开关",
        icon: "RightSquareOutlined",
        drawer: "YwuFormSwitchDrawer",
        type: "switch",
        component: "YwuFormSwitch",
        sourceId: 9,
        name: "Switch开关"
    },
    {
        code: generateUUID(),
        labelName: "图片上传",
        drawerTitle: "编辑图片上传",
        icon: "RightSquareOutlined",
        drawer: "YwuFormUploadImageDrawer",
        type: "uploadImage",
        component: "YwuFormUploadImage",
        sourceId: 10,
        name: "图片上传"
    },
    {
        code: generateUUID(),
        labelName: "文件上传",
        drawerTitle: "编辑文件上传",
        icon: "RightSquareOutlined",
        drawer: "YwuFormUploadFileDrawer",
        type: "uploadFile",
        component: "YwuFormUploadFile",
        sourceId: 11,
        name: "文件上传"
    },
    {
        code: generateUUID(),
        labelName: "日期选择器",
        drawerTitle: "编辑日期选择器",
        icon: "RightSquareOutlined",
        drawer: "YwuFormDateDrawer",
        type: "date",
        component: "YwuFormDate",
        sourceId: 12,
        name: "日期选择器",
        dataType: "date", // 日期类型
        commonPlaceholder: "", // 非范围选择时的占位内容
        startPlaceholder: "", //范围选择时开始日期的占位内容
        endPlaceholder: "", // 范围选择时结束日期的占位内容
        format: "YYYY-MM-DD", // 格式化字符串
        weekFormat: "YYYY 第 ww 周", // 周的格式化字符串
    },
    {
        code: generateUUID(),
        labelName: "时间选择器",
        drawerTitle: "编辑时间选择器",
        icon: "RightSquareOutlined",
        drawer: "YwuFormTimeDrawer",
        type: "time",
        component: "YwuFormTime",
        sourceId: 13,
        name: "时间选择器",
        commonPlaceholder: "", // 非范围选择时的占位内容
        startPlaceholder: "", //范围选择时开始日期的占位内容
        endPlaceholder: "", // 范围选择时结束日期的占位内容
        isRange: false, // 是否启用范围
        isArrowControl: false, // 是否使用箭头进行时间选择
    }
]